package com.newviews.tcmip.service.inf;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.newviews.tcmip.common.model.PageModel;
import com.newviews.tcmip.common.model.ResultModel;
import com.newviews.tcmip.pojo.po.*;
import com.newviews.tcmip.pojo.vo.EtcmCommonBaseInfoRespVO;
import com.newviews.tcmip.pojo.vo.index.EtcmIndexStatusticsRespVO;
import com.newviews.tcmip.web.vo.etcmingr.EtcmBarChartRespVo;
import com.newviews.tcmip.web.vo.etcmingr.EtcmIngrExportReqVO;
import com.newviews.tcmip.web.vo.etcmingr.EtcmScatterDiagramRespVo;
import com.newviews.tcmip.web.vo.etcmingr.EtcmVolcanoMapRespVo;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 中草药库 服务类
 * </p>
 *
 * @author lxc
 * @since 2024-02-29
 */
public interface EtcmIngrServiceInf extends IService<EtcmIngrPo> {
    ResultModel<EtcmIndexStatusticsRespVO> getStatisticsIngr(String langCode, String uiTypeCode, String prepositionContent);
    ResultModel<PageModel<Map<String, String>>> getIndexPage(String languageCode, String uiTypeCode, Integer pageNo, Integer pageSize, String searchName,String sortType,String pConent);
    List<Map<String, String>> getIngrDownload(EtcmIngrExportReqVO reqVO);



    ResultModel<PageModel<Map<String, String>>> getPageByExperimentalRecords(String languageCode, String uiTypeCode, String ingrId, Integer pageNo, Integer pageSize, String searchName,String sortType);

    ResultModel<PageModel<Map<String, String>>> getPageBySynergisticIngredients(String languageCode, String uiTypeCode, String ingrId, Integer pageNo, Integer pageSize, String searchName,String sortType);

    ResultModel<PageModel<Map<String, String>>> getPageByAssociatedDiseases(String languageCode, String uiTypeCode, String ingrId, Integer pageNo, Integer pageSize, String searchName,String sortType);

    ResultModel<PageModel<Map<String, String>>> getPageByPx(String languageCode, String uiTypeCode, String ingrId, Integer pageNo, Integer pageSize, String searchName,String sortType);

    ResultModel<PageModel<Map<String, String>>> getPageByHerb(String languageCode, String uiTypeCode, String ingrId, Integer pageNo, Integer pageSize, String searchName ,String herbFlavorCode,String herbPropertyCode,String herbMeridiansCode,String sortType);

    ResultModel<PageModel<Map<String, String>>> getPageByTarget(String languageCode, String uiTypeCode, String ingrId, Integer pageNo, Integer pageSize, String searchName,String type,String sortType);


    ResultModel<PageModel<Map<String, String>>> getPage(String languageCode, String uiTypeCode, Integer pageNo, Integer pageSize, String searchName,String sortType,String property);

    ResultModel<List<EtcmCommonBaseInfoRespVO>> getDetails(String ingrId, String languageCode, String uiTypeCode);

    ResultModel<List<EtcmCommonBaseInfoRespVO>> getAdmetDetails(String ingrId, String langCode, String uiTypeCode, Integer pageNo, Integer pageSize, String content);

    ResultModel<Map<String, String>> getStatistics(String content);

    ResultModel<Map<String, String>> getTargetStatistics(String content, String ingrId);


    ResultModel<EtcmVolcanoMapRespVo> getVolcanoMap(String erId);

    ResultModel<EtcmScatterDiagramRespVo> getScatterDiagram(String erId);

    ResultModel<EtcmBarChartRespVo> getBarChart(String erId);
}
